Advancements in technology have allowed many modern factories to be run by industrial control systems. These industrial control systems increase the efficiency of the factory, thereby reducing costs associated with the factory and allowing these reduced costs to be passed on to a consumer. To further the automation of a factory and increase cost savings, many industrial control systems employ programmable logic controllers (PLCs), which can be coupled to various machines in an industrial system and control a process that requires precise timing between actions of those machines. Programmable logic controllers thus increase the speed and efficiency with which an industrial process can be performed and reduce or even eliminate the costs incurred in an industrial process traditionally associated with human error.
Systems and methodologies for designing the control logic utilized by PLCs and programming this control logic onto the PLCs have been developed and implemented in various industrial settings. Recently, software tools have been implemented to facilitate PLC programming. With the aid of software tools, a user can program a PLC to perform a desired industrial process by creating and implementing control logic for manipulating a series of data points that are representative of the industrial system. These data points correspond to, for example, inputs and outputs of physical entities in an industrial system and signals internal to a PLC. Often, however, the number of data points used in the control logic for an industrial system can be quite substantial. In addition, individual data points often appear in multiple locations within a given set of control logic. This complicates debugging control logic associated with a particular data point because where or how a particular data point is impacting the control logic may not be immediately apparent to the user.
Conventional software tools have attempted to address these problems by displaying a separate reference window containing the locations of each data point in the control logic. In order to view this reference window, however, a user of a conventional software tool must leave the logic he is currently programming and/or debugging. This, in turn, causes the user to break his workflow and thought processes. In addition, the reference window often covers up the current control logic, making viewing both the reference window and the current control logic simultaneously impracticable. Further, because the reference window displays the locations of all data points within the control logic, a user is often required to spend unnecessary time sorting through all of the given information in order to find the locations of the particular data point of interest.
Alternatively, other conventional software tools provide means for a user to generate a printout containing reference information for each data point within the control logic. Generating a printout of reference information, however, requires a user to spend unnecessary time to generate and collect the printout. Additionally, once the printout is obtained, the user is required to manually go through the printout, sort through the printout to find the information relevant to the particular data point of interest, and go to each location in the control logic listed within the printout.
In view of at least the above, there exists a need in the art for a system and/or methodology that provides more efficient visualization and navigation for a set of information within a software tool.